import java.util.Scanner;

public class javase05 {
// 2. 实现代码: 递归求 N 的阶乘
public static int func(int n) {
    if(n == 1) {
        return 1;
    }
    return n* func(n-1);
}
public static void main12(String[] args) {

    while(true) {
        Scanner sc = new Scanner(System.in);
        int n = sc .nextInt();
        System.out.println(func(n));
    }
}
//3. 实现代码: 递归求 1 + 2 + 3 + ... + 10
public static int func1(int n) {
    if(n == 1) {
        return 1;
    }
    return n + func1(n-1);
}
public static void main456765(String[] args) {
    System.out.println(func1(10));
}
//4. 实现代码: 按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)
public static void print(int a) {
    if(a > 1) {
        print(a/10);
    }
    System.out.println(a%10 + " ");
}
public static void main23456(String[] args) {
    while(true) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        print(a);
    }
}
//5. 实现代码: 写一个递归方法，输入一个非负整数，返回组成它的数字之和.
public static int sum(int a) {
    if(a < 10) {
        return a;
    }
    return a%10 + sum(a/10);
 }

public static void main123(String[] args) {
    while(true) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        System.out.println(sum(a));
    }
}
//6. 实现代码: 求斐波那契数列的第 N 项
public static int  fib(int a)  {
    if(a == 1 || a == 2) return 1;
    return fib(a-1)+ fib(a-2);
}
public static void main12343(String[] args) {
    while(true){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        System.out.println(fib(a));
    }
}
//7. 实现代码: 求解汉诺塔问题(提示, 使用递归)
public static void h(int n,char a,char b,char c){
    if(n == 1) {
        System.out.println(a + "——>"+ c);
    }else {
        h(n - 1, a, c, b);
        System.out.println(a + "——>" + c);
        h(n - 1, b, a, c);
    }
}
public static void main1234312345(String[] args) {
    while(true) {
        char a = 'a';
        char b = 'b';
        char c = 'c';
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        h(n,a,b,c);
    }
}

//    汉诺塔问题是一个经典的问题。汉诺塔（Hanoi Tower），又称河内塔，源于印度一个古老传说。
// 8. 实现代码: 青蛙跳台阶问题(提示, 使用递归)
//    一只青蛙一次可以跳上 1 级台阶，也可以跳上2 级。求该青
//    蛙跳上一个n 级的台阶总共有多少种跳法
  public static int Flog(int n) {
    if(n <= 3) {
        return n;
    }
    return Flog(n-1) + Flog(n-2);
  }
  public static void main(String[] args) {
    while(true) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(Flog(n));
    }
  }
}
